The present invention relates to the area of electronic design automation of logic designs and in particular, to an aspect known as technology mapping of a logic design, especially for a technology having fracturable logic elements.
Integrated circuits are important building blocks of the modern age. Technology continues to evolve and integrated circuits continue to provide improved functionality. As integrated circuits improve, so do the electronics systems that are built using integrated circuits. There are many types of integrated circuit such as memories, microprocessors, application specific integrated circuits (ASICs), and programmable logic. Programmable logic integrated circuits such as PALs, PLDs, FPGAs, LCAs, and others are becoming more complex and continually evolving to provide more user-programmable features on a single integrated circuit. Modern programmable logic integrated circuits incorporate programmable logic including logic gates, products terms, or look-up tables. Programmable logic integrated circuits also included embedded functionality such as user-programmable memory or RAM, digital signal processors (DSPs), and on-board microcontrollers such as ARM-based or MIPS-based controllers.
As integrated circuits become more complex and provide more functionality in a smaller die size, it also becomes increasing difficult to ensure the logic functions are implemented properly and in an optimal way. Modern digital integrated circuits have many transistors and many logic gates, more so than be optimized manually in a reasonable amount of time, especially when time-to-market is critical in ensuring a product's success. As a specific example, a typical programmable logic design surpasses the multimillion-gate mark.
Electronic design automation tools are available to assist engineers with the design and verification tasks. But even with the help of computer-aided tools, the process of optimizing an integrated circuit design can be time-consuming because of the large number of variables involved. It is desirable that the design automation task is done time efficiently even for large designs. Further, it is desirable the design automation tool maximizes performance or otherwise improves an aspect of an integrated circuit design. Some other aspects of a design that a tool may help with include improving critical path performance, removing metastability, reducing the number of logic gates used, checking or verifying functionality, removing race conditions, and others.
A programmable logic architecture may provide fracturable logic elements or logic blocks. These are logic elements which can be split-up or divided up into smaller units. For example, a fracturable architecture may have a logic element that is capable of being is configured as two four-input look-up tables, one eight-input look-up table, with shared inputs, or one six-input look-up table. A fracturable logic element allows for greater flexibility and higher utilization of the on-chip logic. Electronic design automation techniques should take advantage of the capabilities provided by an architecture with a fracturable logic element.
As can be appreciated, there is a need to provide an electronic design automation system and techniques to handle fracturable logic elements in programmable logic, in order to better utilize the on-chip logic.